package com.zhang.sort.cmp;


import com.zhang.sort.Sort;

/**
 * @author 张吉鑫
 * @Description 选择排序
 * @date 2021/4/11 14:58
 */
public class SelectSort extends Sort {

    /**
     * ① 从序列中找出最大的那个元素，然后与最末尾的元素交换位置
     *    执行完一轮后，最末尾的那个元素就是最大的元素
     * ② 忽略 ① 中曾经找到的最大元素，重复执行步骤 ①
     */
    @Override
    protected void sort() {
        for (int i = array.length - 1; i > 0; i--) {
            int max = 0;
            for (int j = 0; j <= i; j++) {
                if (cmp(j,max) >= 0){
                    max = j;
                }
            }
            swap(i, max);
        }
    }
}
